-
Notifications
You must be signed in to change notification settings - Fork 27k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ESLint] Prevent no-html-link-for-pages
from warning for static files
#31495
[ESLint] Prevent no-html-link-for-pages
from warning for static files
#31495
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch, thanks for submitting this fix :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should only match if the asset is a page. The rule shouldn't show an error if /static-file.csv
is a public file already. Are you seeing the detection here
const urls = getUrlFromPagesDirectories('/', foundPagesDirs) |
Yes, I encountered this while working. Specifically after upgrading to Next 12. The added test failed too, until the exception was made. The return value of
In my application, the return value contains the same generic rules (excluding the The issue seems to be the |
Ah I see the first regex there seems to be causing any |
download
attr to no-html-link-for-pages
no-html-link-for-pages
from warning for static files
Stats from current PRDefault Build (Decrease detected ✓)General Overall decrease ✓
Page Load Tests Overall decrease
|
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.618 | 2.715 | |
/ avg req/sec | 955.03 | 920.91 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.266 | 1.245 | -0.02 |
/error-in-render avg req/sec | 1975.22 | 2007.94 | +32.72 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
450.HASH.js gzip | 179 B | 179 B | ✓ |
framework-HASH.js gzip | 42.2 kB | 42.2 kB | ✓ |
main-HASH.js gzip | 28.3 kB | 28.3 kB | ✓ |
webpack-HASH.js gzip | 1.45 kB | 1.45 kB | ✓ |
Overall change | 72.2 kB | 72.2 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.37 kB | 1.37 kB | ✓ |
_error-HASH.js gzip | 194 B | 194 B | ✓ |
amp-HASH.js gzip | 312 B | 312 B | ✓ |
css-HASH.js gzip | 327 B | 327 B | ✓ |
dynamic-HASH.js gzip | 2.38 kB | 2.38 kB | ✓ |
head-HASH.js gzip | 350 B | 350 B | ✓ |
hooks-HASH.js gzip | 635 B | 635 B | ✓ |
image-HASH.js gzip | 4.45 kB | 4.45 kB | ✓ |
index-HASH.js gzip | 263 B | 263 B | ✓ |
link-HASH.js gzip | 1.87 kB | 1.87 kB | ✓ |
routerDirect..HASH.js gzip | 321 B | 321 B | ✓ |
script-HASH.js gzip | 383 B | 383 B | ✓ |
withRouter-HASH.js gzip | 318 B | 318 B | ✓ |
85e02e95b279..7e3.css gzip | 107 B | 107 B | ✓ |
Overall change | 13.3 kB | 13.3 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
_buildManifest.js gzip | 460 B | 460 B | ✓ |
Overall change | 460 B | 460 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
index.html gzip | 523 B | 523 B | ✓ |
link.html gzip | 535 B | 535 B | ✓ |
withRouter.html gzip | 516 B | 516 B | ✓ |
Overall change | 1.57 kB | 1.57 kB | ✓ |
Default Build with SWC (Increase detected ⚠️ )
General Overall decrease ✓
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
buildDuration | 18.1s | 17.8s | -268ms |
buildDurationCached | 3.3s | 3.6s | |
nodeModulesSize | 339 MB | 339 MB | -4 B |
Page Load Tests Overall increase ✓
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.662 | 2.666 | 0 |
/ avg req/sec | 939.06 | 937.73 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.347 | 1.252 | -0.09 |
/error-in-render avg req/sec | 1856.15 | 1996.39 | +140.24 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
450.HASH.js gzip | 179 B | 179 B | ✓ |
framework-HASH.js gzip | 42.3 kB | 42.3 kB | ✓ |
main-HASH.js gzip | 28.6 kB | 28.6 kB | ✓ |
webpack-HASH.js gzip | 1.44 kB | 1.44 kB | ✓ |
Overall change | 72.5 kB | 72.5 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.35 kB | 1.35 kB | ✓ |
_error-HASH.js gzip | 180 B | 180 B | ✓ |
amp-HASH.js gzip | 305 B | 305 B | ✓ |
css-HASH.js gzip | 321 B | 321 B | ✓ |
dynamic-HASH.js gzip | 2.38 kB | 2.38 kB | ✓ |
head-HASH.js gzip | 342 B | 342 B | ✓ |
hooks-HASH.js gzip | 622 B | 622 B | ✓ |
image-HASH.js gzip | 4.47 kB | 4.47 kB | ✓ |
index-HASH.js gzip | 256 B | 256 B | ✓ |
link-HASH.js gzip | 1.91 kB | 1.91 kB | ✓ |
routerDirect..HASH.js gzip | 314 B | 314 B | ✓ |
script-HASH.js gzip | 375 B | 375 B | ✓ |
withRouter-HASH.js gzip | 309 B | 309 B | ✓ |
85e02e95b279..7e3.css gzip | 107 B | 107 B | ✓ |
Overall change | 13.2 kB | 13.2 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
_buildManifest.js gzip | 459 B | 459 B | ✓ |
Overall change | 459 B | 459 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nilskaspersson/next.js no-html-link-for-pages-download-exception | Change | |
---|---|---|---|
index.html gzip | 524 B | 524 B | ✓ |
link.html gzip | 535 B | 535 B | ✓ |
withRouter.html gzip | 517 B | 517 B | ✓ |
Overall change | 1.58 kB | 1.58 kB | ✓ |
The rule
no-html-link-for-pages
will incorrectly flag an<a>
-tag intended to download a local asset. This PR adds an exception to the rule for any anchor element with adownload
attribute.